Field of the Invention
Embodiments of the present invention generally relate to a method and apparatus for firmware virtualization.
Description of the Related Art
In electronic systems and computing, firmware is the combination of persistent memory, with program code and data stored in the memory. Typical examples of devices containing firmware are embedded firmware systems (such as traffic lights, consumer appliances, and digital watches, computers, computer peripherals, digital cameras and the like). The firmware contained in these devices provides the control program for the device. Firmware is typically held in non-volatile memory devices such as ROM, EEPROM, or flash memory often embedded in the device. Changing the firmware of a device may rarely or never be done during its economic lifetime. Some firmware memory devices are permanently installed and cannot be changed after manufacturing. Common reasons for updating firmware include fixing bugs or adding features to the device after the device is made available to users. This may require physically changing ROM integrated circuits or reprogramming flash memory with a special procedure that requires erasing and replacing all instructions stored in the firmware. Firmware such as the ROM BIOS of a personal computer may contain only elementary basic functions of a device and may only provide services to higher-level software. Firmware such as the program of the embedded system memory may be the only program that will run on the system and provide all of its functions.
The proliferation of network connectivity and CLOUD based deployment has however changed the way applications/software are virtualized. Network connected devices are capable of flashing or installing firmware updates via the Internet. However, updates need to be limited to the size of the embedded memory and often require manual user initiation, restarting the device, flashing the firmware ROM, time to download, and otherwise inconvenient steps that interrupt operation of the electronic device.
Thus, there is a need in the art for firmware virtualization for faster deployment of new firmware and expanding firmware capability.